perm filename RSXMC.MAC[11,HE] blob sn#621321 filedate 1982-12-14 generic text, type T, neo UTF8
		.IIF NDF S$$YDF , .NLIST
		.TITLE	RSXMC
	.IDENT	/M3.2/
;
; COPYRIGHT (C) 1976, 1977, 1978, 1979
; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
;
; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
; SINGLE COMPUTER SYSTEM AND MAY  BE  COPIED   ONLY  WITH  THE
; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE,  OR
; ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED  OR  OTHERWISE
; MADE AVAILABLE TO ANY OTHER PERSON   EXCEPT FOR  USE ON SUCH
; SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE  TERMS.  TITLE
; TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL  TIMES  REMAIN
; IN DEC.
;
; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
; EQUIPMENT CORPORATION.
;
; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
;  
; VERSION M3.2    BASELEVEL 26
;
; CREATED BY SYSGEN VERSIONS 3.2.3  / 2:3.2.2d 
;
V$$RSN=32		;RSX-11M VERSION 3.2
A$$CPS=0		;ACP SUPPORT
M$$FCS=0		;FCS/FILE SYSTEM SUPPORT
F$$LVL=1		;FILES STRUCTURE LEVEL SUPPORT
C$$CKP=0		;CHECKPOINTING SUPPORT
D$$YNC=0		;DYNAMIC CHECKPOINT ALLOCATION
D$$ISK=0		;NONRESIDENT TASK SUPPORT
P$$P45=0		;ROTATING DATA LIGHTS
G$$EFN=0		;GROUP GLOBAL EVENT FLAGS
M$$MGE=0		;MEMORY MANAGEMENT
D$$YNM=0		;DYNAMIC MEMORY ALLOCATION SUPPORT
D$$SHF=0		;AUTOMATIC DYN. MEM. COMPACTION
P$$LAS=0		;PROGRAM LOGICAL ADDRESS EXTENTIONS
P$$SRF=0		;SEND/RECEIVE BY REFERENCE
P$$GMX=0		;GET MAPPING CONTEXT
A$$CHK=0		;ADDRESS CHECKING
I$$RDN=0		;I/O RUNDOWN
T$$BTW=0		;BREAKTHROUGH WRITE
A$$TRP=0		;AST SUPPORT
C$$SMT=0		;CANCEL SELECTIVE MARK TIMES
R$$SND=0		;SEND/RECEIVE DIRECTIVES
D$$IAG=0		;USER MODE DIAGNOSTICS
L$$DRV=0		;LOADABLE DRIVER SUPPORT
G$$TPP=0		;GET PARTITION PARAMETERS DIRECTIVE
L$$ASG=0		;LOGICAL UNIT ASSIGNMENT
G$$TTK=0		;GET TASK PARAMETERS DIRECTIVE
T$$KMG=0		;TASK TERM./DEVICE NOT READY MESSAGES
P$$RFL=0		;POWER FAIL
G$$TSS=0		;GET SENSE SWITCH DIRECTIVE
A$$PRI=0		;ALTER PRIORITY DIRECTIVE
C$$INT=0		;CONNECT TO INTERRUPT DIRECTIVE
P$$OFF=0		;PARENT/OFFSPRING TASKING
E$$XPR=0		;EXTEND PARTITION (TASK) DIRECTIVE
Q$$OPT=5.	;PRE-ALLOCATE I/O PACKETS
N$$MOV=33.	;SIZE OF BLXIO 'MOV' TABLE
I$$RAR=0		;INSTALL, REQUEST, AND REMOVE ON EXIT
T$$CCA=0		;UNSOLICITED INPUT AST
T$$CTR=0		;CONTROL-R SUPPORT
T$$GMC=0		;GET TERMINAL CHARACTERISTICS
T$$SMC=0		;SET TERMINAL CHARACTERISTICS
T$$GTS=0		;GET TERMINAL DRIVER SUPPORT
T$$BUF=0		;BUFFERED TERM I/O; CKP DURING INPUT
T$$RPR=0		;READ AFTER PROMPT
T$$RUB=0		;CRT RUBOUT SUPPORT
T$$UTO=0.	;TIME OUT ON UNSOLICITED INPUT
T$$CUP=0		;DEVICE INDEPENDENT CURSOR POSITIONING
T$$CPW=0		;FULL DUPLEX TERMINAL DRIVER
T$$BUF=0		;CHECKPOINTABLE DURING TERMINAL INPUT
	.IIF DF T$$CPW,	T$$ACR=0
	.IIF DF T$$CPW,	T$$HFF=0
	.IIF DF T$$CPW,	T$$CCO=0
	.IIF DF T$$CPW,	T$$HLD=0
	.IIF DF T$$CPW,	T$$TRW=0
	.IIF DF T$$CPW,	T$$RNE=0
	.IIF DF T$$CPW,	T$$30P=0
	.IIF DF T$$CPW,	T$$VBF=0
	.IIF DF T$$CPW,	T$$UTB=0
	.IIF DF T$$CPW,	T$$SYN=0
	.IIF DF T$$CPW,	T$$RST=0
	.IIF DF T$$CPW,	T$$LWC=0
T$$ESC=0		;ESCAPE SEQUENCE SUPPORT
T$$RED=0		;HARDWARE RECEIVE ERROR SUPPORT
X$$DBT=0		;EXECUTIVE DEBUGGING TOOL
R$$DER=0		;CORAL DEALLOCATION ERROR CHECKING
L$$LDR=0		;LOADABLE LOADER SUPPORT
S$$TOP=0		;STOP BIT DIRECTIVES
C$$TTY=177564	;REGISTER/STACK DUMP DEVICE CSR ADDRESS
C$$RSH=177564	;CRASH REPORTING
E$$DVC=0		;LOG DEVICE ERRORS AND TIMEOUT
E$$NSI=0		;LOG UNDEFINED INTERRUPTS
E$$PER=0		;LOG PARITY ERROR TRAPS
P$$RTY=0		;PARITY MEMORY
C$$ORE=1024.	;SIZE OF DYNAMIC STORAGE REGION
S$$YSZ=124.*32.	;SIZE OF PHYSICAL MEMORY IN 32W BLOCKS
F$$LPP=0		;FLOATING POINT PROCESSOR SUPPORT
K$$CSR=172540	;PROGRAMMABLE CLOCK CSR ADDRESS
K$$CNT=172542	;COUNT REGISTER ADDRESS
K$$TPS=50.	;TICKS PER SECOND
K$$LDC=200.	;LOAD COUNT VALUE
K$$IEN=113		;CLOCK INTERRUPT ENABLE (KW11-P IN PROG MODE)
H$$RTZ=60.		;LINE FREQUENCY
D$$WCK=0		;DISK WRITECHECK SUPPORT
R$$K11=1.	;RK11 RK05 DISK CONTROLLERS
C$$ONS=1.	;CONSOLE DRIVER
N$$LDV=1.	;NULL DEVICE
M$$OVR=0	;OVERLAYED MCR
M$$CRX=0	;EXTERNAL MCR FUNCTIONS
D$$L11=1.		;DL11 A/B/C/D LINE INTERFACES
LD$TT=0			;LOADABLE TTDRV
D$$Z11=1.	;DZ11 ASYNCHRONOUS LINE MULTIPLEXERS
D$$ZMD=0		;DZ11 MODEM SUPPORT
T$$ZAN=12430		;DZ11 ANSWER BAUD RATE
V$$CTR=400	;HIGHEST INTERRUPT VECTOR
C$$OTM=0		;CONSOLE TIME STAMP
M$$CRB=84.		;MCR COMMAND BUFFER LENGTH
R$$11M=0		;RSX-11M SYSTEM
;
; EXEC MACROS
;
; ASSUME MACRO FOR CHECKING ADJACENCY AND OFFSET VALUE ASSUMPTIONS
;
 
	.MACRO	ASSUME	A,B=0
	.IF NE <A>-<B>
	.ERROR			;EXPRESSION(S) NOT EQUAL
	.ENDC
	.ENDM
 
;
; CALL SUBROUTINE
;

	.MACRO	CALL SUBR ARG
	.IF IDN	<$INTSV>,<SUBR>
	JSR	R5,$INTSV
	.IF DF	L$$SI1
	.WORD	ARG
	.IFF
	.WORD	↑C<ARG>&PR7
	.ENDC
	.IFF
	.IF IDN	<$SAVNR>,<SUBR>
	JSR	R5,$SAVNR
	.IFF
	.IF IDN	<$SWSTK>,<SUBR>
	EMT	376
	.WORD	ARG
	.IFF
	JSR	PC,SUBR
	.ENDC
	.ENDC
	.ENDC
	.ENDM

;
; CALL AND RETURN FROM SUBROUTINE
;

	.MACRO	CALLR SUBR
	JMP	SUBR
	.ENDM

;
; CRASH SYSTEM
;

	.MACRO	CRASH
	IOT
	.ENDM

;
; DIRECTIVE REGISTER SAVE AND SET PRIORITY
;

	.MACRO	DIRSV$
	JSR	R5,$DIRSV
	.ENDM

;
; SET DIRECTIVE STATUS
;

	.MACRO 	DRSTS VALUE
	TRAP	VALUE
	.ENDM

;
; GENERATE INTERRUPT ROUTINE ENTRY POINT LABEL
;


	.IF DF	E$$DVC
	.MACRO	INTLB NUM,NAM
$'NAM'NUM'T::
	.ENDM
	.ENDC


;
; INTERRUPT SAVE GENERATION MACRO FOR ERROR LOGGING DEVICES
;

	.MACRO	INTSE$ DEV,PRI,NCTRLR,PSWSV,UCBSV,?LAB
	.IF DF	L$$DRV & LD$'DEV & M$$MGE
$'DEV'INT::
	.IF NDF	E$$DVC
	.IF EQ	NCTRLR-1
	CLR	R4
	.ENDC
	.ENDC
	.IFF
	.IF NDF	E$$DVC
$'DEV'INT::INTSV$	DEV,PRI,NCTRLR,PSWSV,UCBSV
	.IF EQ	NCTRLR-1
	CLR	R4
	.ENDC
	.MEXIT
	.IFF
$$$=0
	.REPT	NCTRLR
	INTLB	\$$$,DEV
	JSR	R5,$INTSE
	SCBLB	\$$$,DEV
	.IF DF	L$$SI1
	.WORD	PRI
	.IFF
	.WORD	↑C<PRI>&PR7
	.ENDC
	.IF GT	NCTRLR-$$$-1
	BR	LAB
	.ENDC
$$$=$$$+1
	.ENDR
LAB:
	.ENDC
	.ENDC
	GTUCB$	UCBSV,NCTRLR
	.ENDM


;
; INTERRUPT SAVE GENERATION FOR NON-ERROR LOGGING DEVICES
;

	.MACRO	INTSV$	DEV,PRI,NCTRLR,PSWSV,UCBSV
	.IF NDF	L$$DRV ! M$$MGE ! LD$'DEV
	.IF GT	NCTRLR-1
	.IF B	<PSWSV>
	MFPS	TEMP
	.IFF
	MFPS	PSWSV
	.ENDC
	.IFTF
	JSR	R5,$INTSV
	.IF DF	L$$SI1
	.WORD	PRI
	.IFF
	.WORD	↑C<PRI>&PR7
	.ENDC
	.IFT
	.IF B	<PSWSV>
	MOV	TEMP,R4
	.IFF
	MOV	PSWSV,R4
	.ENDC
	BIC	#177760,R4
	ASL	R4
	.ENDC
	.ENDC
	GTUCB$	UCBSV,NCTRLR
	.ENDM


;
; GENERATE CODE TO LOAD UCB ADDRESS INTO R5 -- CALLED
; ONLY BY INTSE$ AND INTSV$
;

	.MACRO	GTUCB$	UCBSV,NCTRLR
	.IF NB	<UCBSV>
	.IF GT	NCTRLR-1
	MOV	UCBSV(R4),R5
	.IFF
	MOV	UCBSV,R5
	.ENDC
	.IFF
	.IF GT	NCTRLR-1
	MOV	CNTBL(R4),R5
	.IFF
	MOV	CNTBL,R5
	.ENDC
	.ENDC
	.ENDM


;
; PROCESSOR STATUS READ/WRITE
;

	.IF NDF	L$$SI1
	.MACRO	MFPS DST
	MOVB	@#PS,DST
	.ENDM
	.MACRO	MTPS SRC
	.IF IDN	<#0>,<SRC>
	CLRB	@#PS
	.IFF
	MOVB	SRC,@#PS
	.ENDC
	.ENDM
	.ENDC


;
; SAVE NONVOLATILE REGISTERS
;

	.MACRO	SAVNR
	JSR	R5,$SAVNR
	.ENDM

;
; GENERATE STATUS CONTROL BLOCK REFERENCE LABEL
;


	.IF DF	E$$DVC
	.MACRO	SCBLB NUM,NAM
	.WORD	$'NAM'NUM
	.ENDM
	.ENDC


;
; RETURN FROM SUBROUTINE
;

	.MACRO	RETURN
	RTS	PC
	.ENDM

;
; SOB LOOP INSTRUCTION
;


	.IF NDF	R$$SOB
	.MACRO	SOB	A,B
	DEC	A
	BNE	B
	.ENDM
	.ENDC

;
; STATE SWITCHING MACRO
;

	.MACRO	SWSTK$ ARG
	CALL	$SWSTK,ARG
	.ENDM

	.IF DF	F$$LPP

;
; LOAD FLOATING DOUBLE
;

	.MACRO	LDD A,B
	.NTYPE	N,A
	.NTYPE	M,B
	.WORD	172400+<M*64.>+N
	.ENDM

;
; LOAD FLOATING POINT STATUS
;

	.MACRO	LDFPS A
	.IF IDN	<A>,<@H.FPSA(R2)>
	.WORD	170100+72
	.WORD	H.FPSA
	.IFF
	.NTYPE	N,A
	.WORD	170100+N
	.ENDC
	.ENDM

;
; SET DOUBLE FLOATING MODE
;

	.MACRO	SETD
	.WORD	170011
	.ENDM

;
; STORE FLOATING DOUBLE
;

	.MACRO	STD A,B
	.NTYPE	N,A
	.NTYPE	M,B
	.WORD	174000+<N*64.>+M
	.ENDM

;
; STORE FLOATING POINT STATUS
;

	.MACRO	STFPS A
	.NTYPE	N,A
	.WORD	170200+N
	.ENDM

;
; STORE STATUS
;

	.MACRO	STST A
	.WORD	170337
	.WORD	FLSTS
	.ENDM

	.ENDC


;
; GET I/O PACKET MACRO -- USED FOR RSX-11M-PLUS COMPATIBILITY
;
	.MACRO GTPKT$ DEV,NCTRLR,ADDR,UCBSV,SUC
	CALL $GTPKT
	.IF B <ADDR>
	BCC 65535$
	RETURN
65535$:
	.IFF
	BCS ADDR
	.ENDC
	.IF B <UCBSV>
	.IFF
	.IF GT NCTRLR-1
	MOV R5,UCBSV(R3)
	.IFF
	MOV R5,UCBSV
	.ENDC
	.ENDC
	.ENDM
;
; GENERATE THE DRIVER DISPATCH TABLE -- DDT (USED FOR RSX-11M-PLUS COMPATIBILITY)
;
	.MACRO DDT$ DEV,NCTRLR,INY,INX,UCBSV,NEW
$'DEV'TBL::
	.IF B <INX>
	.WORD DEV'INI
	.IFF
	.WORD DEV'INX
	.ENDC
	.WORD DEV'CAN
	.WORD DEV'OUT
	.WORD DEV'PWF
	.IF NB NEW
	.ERR NEW	; UNSUPPORTED RSX-11M-PLUS FEATURE
	.ENDC
	.IF NB <UCBSV>
UCBSV:	.BLKW	NCTRLR
	.ENDC
	.ENDM
	.IIF NDF S$$YDF , .LIST